//这里是关于包的简单说明
package main //main()必须在main包中
import (
	"fmt"
	"math"
	"strings"
)

//输出一个int32对应的二进制表示
func BinaryFormat(n int32) string {
	a := uint32(n)               //有符号转为无符号
	sb := strings.Builder{}      //把多个短字符串拼接成一个长字符串
	c := uint32(math.Pow(2, 31)) //最高位是1，其他位全是0
	for i := 0; i < 32; i++ {
		if a&c != 0 { //判断n的当前位上是否为1
			sb.WriteString("1") //往sb后面拼接“1”
		} else {
			sb.WriteString("0") //往sb后面拼接“0”
		}
		c >>= 1 //"1"往右位移一位
	}
	return sb.String() //返回长度为32的字符串
}

//写一个main()，把代码运行起来。传一些不同的n，看看结果，比如n=0  100  -100   342553435523634   -45556747656354
func main() {

	fmt.Printf(BinaryFormat(342553435))  //只能输入9位数
	fmt.Printf(BinaryFormat(-342553435)) //只能输入9位数
}
